/*!
 * jQuery ixMarquee
 */
(function($){
	$.fn.ixMarquee = function(options){
		var del = {
			temp:-2,//滚动的长度，正整数的时候是向右滚动，负整数的时候是向左滚动（-2|2）
			speed:100,//滚动的频率，单位为毫秒,数字越大速度越慢
            num:2,//每滚动2条停顿一次
            delay:5000,//一次停顿5000毫秒
			onSlide:false,//是否可以手动滑动，true-是
			backMarquee:function(id,content){}//没滑动完一条的回调函数 @param id-li的索引 content-li的html
		}

		var options = $.extend(del,options);
		var xM = $(this);
		var backMarquee = del.backMarquee;

		xM.each(function(){
			var fontW = 0;
			var t,o;
			var $root = $(this);
			var self = $(this).find("ul:first");
			var fli  = self.find("li:first");
			var fla  = self.find("li:last");
			var temp = parseInt(del.temp);
			var speed = parseInt(del.speed);
			var start = 0;
			for(var i = 0;i<self.find("li").length;i++){
				self.find("li").eq(i).data("index",i);
				fontW+=self.find("li").eq(i).width();
			}
			if(fontW<$(this).width()){return;}//判断如文字的长度小于显示框的长度，则不执行marquee
			if(temp>0){self.css({marginLeft:-self.find("li:last").width()});self.find("li:last").prependTo(self);start = -self.find("li:first").width();}

			function marquee(){
				$root.css('overflow','hidden');
				var idex,num=del.num;
				if(temp<0){
					if(-start>fli.width()){
						start=0;
						fli.appendTo(self);
						idex = self.find("li:first").data("index");
						backMarquee(idex,self.find("li:first").html());
					}
				}else{
					if(start>0){
						self.find("li:last").prependTo(self);
						start=-self.find("li:first").width();
						idex=self.find("li").eq(1).data("index");
						backMarquee(idex,self.find("li").eq(1).html());
					}
				}
				fli  = self.find("li:first");
				self.css({
					marginLeft:start
				});
				start = start + temp;
                if(idex%num==0){reStart();}//停顿处
			}
			t = setInterval(function(){marquee()},speed);
			$root.hover(function(){if(o){clearTimeout(o);o=false;}if(t){clearInterval(t);t=false;}if(del.onSlide){$root.css('overflow','auto')}},function(){t = setInterval(function(){marquee()},speed);});
			function reStart(){//停顿
				clearInterval(t);
				o = setTimeout(function(){
					t = setInterval(function(){marquee()},speed);
				},del.delay)
			}
		})
	}
})(jQuery);